package com.example.archive.config;

import org.springframework.context.annotation.Configuration;

import java.io.File;

/**
 * 文件上传配置类
 * 统一管理文件上传路径配置，确保文件存储路径的一致性
 * 支持自动创建上传目录
 */
@Configuration
public class FileUploadConfig {
    
    /**
     * 获取文件上传的根目录绝对路径
     * 基于项目根目录创建uploads文件夹
     * 如果目录不存在会自动创建
     * 
     * @return 上传文件的绝对路径
     */
    public static String getUploadPath() {
        // 获取项目根目录
        String projectRoot = System.getProperty("user.dir");
        // 构建上传目录路径
        String uploadPath = projectRoot + File.separator + "uploads";
        
        // 确保上传目录存在，不存在则创建
        File uploadDir = new File(uploadPath);
        if (!uploadDir.exists()) {
            uploadDir.mkdirs();
        }
        
        return uploadPath;
    }
    
    /**
     * 获取文件的相对路径（用于存储到数据库）
     * 数据库中存储相对路径，便于系统迁移和部署
     * 
     * @param fileName 文件名（包含UUID前缀）
     * @return 相对路径格式：uploads/filename
     */
    public static String getRelativePath(String fileName) {
        return "uploads" + File.separator + fileName;
    }
} 